package com.muyu.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.muyu.system.Vo.AccountLogVO;
import com.muyu.system.Vo.AccountVO;
import com.muyu.system.Vo.SecurityRefundVO;
import com.muyu.system.danmo.dto.PaymentCallBackResult;
import com.muyu.system.danmo.vo.PayVO;
import com.muyu.system.danmo.vo.RefundResultServiceVO;
import com.muyu.system.dto.AccountLogDTO;
import com.muyu.system.dto.PayDTO;
import com.muyu.system.dto.PremiumPayDTO;
import com.muyu.system.dto.SecurityRefundDTO;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;

/**
 * @author Administrator
 */
public interface SecurityDepositService {

    /**
     * 获取账户信息
     * @param storeId
     * @return
     */
    AccountVO account(Long storeId);

    /**
     * 获取账户流水
     * @param accountLogDTO
     * @return
     */
    IPage<AccountLogVO> accountLog(AccountLogDTO accountLogDTO);


    /**
     * 充值保证金
     * @param payDTO
     * @return
     */
    PayVO pay(PayDTO payDTO);

    /**
     * 充值手续费
     * @param payDTO
     * @return
     */
    PayVO premiumPay(PremiumPayDTO payDTO);


    /**
     * 支付结果处理
     * @param paymentCallBackResult
     */
    void payResultsHandle(PaymentCallBackResult paymentCallBackResult);

    /**
     * 退保证金
     * @param securityRefundDTO
     * @return
     */
    SecurityRefundVO securityRefund(SecurityRefundDTO securityRefundDTO);


    /**
     * 处理退款保证金
     * @param refundResultServiceVO
     * @return
     */
    void refundResultsHandle(RefundResultServiceVO refundResultServiceVO);


    /**
     * 处理手续费支付
     * @param paymentCallBackResult
     */
    void premiumPayResults(PaymentCallBackResult paymentCallBackResult);
}
